草庐IT

c++ - QML Qt openUrlExternally

全部标签

java - 关于extern "C"的C++到Java的转换问题

我必须将一些C/C++代码转换为Java。我的C++非常生锈。在.h文件中,我有以下内容:#ifdef__cplusplusextern"C"{#endif/*tonsofdeclarations*/#ifdef__cplusplus}/*externC*/#endifextern"C"有什么用?这是什么意思?它是否告诉编译器相应的代码应该被解释为纯C,而不是C++?编辑感谢您到目前为止的回答。我必须转换的代码的历史是,似乎一部分是先用C编写的,然后其余部分是用C++编写的。所以我的头文件似乎对应于“旧”C代码。我会将此代码转换为具有静态方法和属性的publicfinalclass。没

c++ - 如何从 C/C++ 程序中找到终端列的数量?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:GettingterminalwidthinC?在Linux和OSX上,我的shell报告$COLUMNS具有终端窗口的宽度——调整窗口大小将调整此shell变量。但在我的C/C++程序中,getenv("COLUMNS")似乎没有找到变量。谁有解释?或者让我的C++程序计算出它正在运行的终端的宽度的替代建议(对于一些帮助消息自动换行)?

c++ - IP 属于 CIDR 范围

我有这样一个IP:12.12.12.12我正在遍历不同的IP范围(12.12.12.0/24(示例))格式,并尝试查看IP是否在该范围内。我尝试了各种方法,例如inet_addr和比较,但我似乎无法获取它。是否有捷径可寻?我正在使用Windows。 最佳答案 只是测试是否:(ip&netmask)==(range&netmask)您可以通过CIDR参数range/netbits确定网络掩码,如下所示:uint32_tnetmask=~(~uint32_t(0)>>netbits); 关于

c++ - OpenCV+VS2010 上未处理的异常

我可以成功构建并执行以下代码:IplImage*img=cvLoadImage("C:\\hello.jpg");cvNamedWindow("myfirstwindow");cvShowImage("myfirstwindow",img);但是我在执行下面的代码时得到了未处理的异常:cv::Matimage=cv::imread("boldt.jpg");cv::namedWindow("Image");cv::imshow("Image",image);虽然,我可以成功构建代码。我在Windows7x86版本上使用opencv2.2和VS2010x86版本。请帮忙!更新:我在win

c++ - 在 C 代码中使用 boost::bind() 会起作用吗?

我可以在C代码中使用boost::bind(mycallback,this,_1,_2)吗?更新简短的回答是否,boostbind不返回函数指针,可以在C代码中调用,而是返回一个仿函数(C++对象重载()运算符)请参阅下面的答案。 最佳答案 做你想做的事情的最好方法是创建一个C回调,然后调用boost::function,它用new存储在某种用户内存中。例子:voidcallFunction(void*data){boost::function*func=(boost::function*)(data);(*func)();dele

c++ - 未定义的 md5 引用

这个问题在这里已经有了答案:HowcanIuseopenssl/md5inC++tohashastring?(2个答案)关闭8年前。#includevoidmMD5(unsignedchar*packet,intsize){unsignedchar*res;MD5((unsignedchar*)&packet,size,(unsignedchar*)&res);for(inti=0;i我收到错误:对MD5的undefinedreference谁能帮帮我?

c++ - 如何修改按值传递的原始变量的内容?

有一个现有的API函数只允许插件(DLL)接收三个参数并执行一些操作:intProcessMe(intnCommand,unsignedintwParam,longlParam);现在,从主程序(exe),想传递两个变量给插件,并要求插件修改它们的内容,主程序将再次读取它们,以执行一些任务。我的问题是,根据上面的函数,我可以在不改变函数参数的情况下执行这个吗?例子:intProcessMe(intnCommand,unsignedintwParam,longlParam){//modifytheparameters//return0;}intmain(){BOOLbSave=TRUE;

c++ - 可以在 C++ 代码而非 C 代码上完成 'easily' 的编译器优化示例

这个问题讨论了在C中不容易实现的排序函数的优化:Performanceofqsortvsstd::sort?与C++相比,是否有更多编译器优化的示例,这些优化在C中是不可能或至少难以实现的? 最佳答案 正如@sehe在评论中提到的。它最重要的是抽象。换句话说,如果语言允许编码器更好地表达意图,那么它可以发出以更优化的方式实现该意图的代码。一个简单的例子是std::fill。当然,对于基本类型,您可以使用memset,但是,假设它是一个32位unsignedlong数组。std::fill知道数组大小是32位的倍数。根据编译器的不同,

c++ - 将 ip 解析为主机名

我正在尝试从IP地址解析主机名。我试过使用gethostbyaddr()和getnameinfo()但在很多情况下主机名根本没有解析。有没有更好的方法将IP地址转换为有效的主机名?char*ip=argv[1];//usinggethostbyaddr()hostent*phe=gethostbyaddr(ip,strlen(ip),AF_INET);if(phe){couth_name 最佳答案 Ihavetriedusinggethostbyaddr()andgetnameinfo()[...].Isthereabetterwa

c++ - 使用 '?' 而不是 L' 有什么缺点吗?用wchar_t?

使用'?'风格的字rune字来比较或分配已知类型为wchar_t的值而不是使用有什么缺点吗code>L'?'风格的文字? 最佳答案 他们有错误的数据类型和编码,所以这是个坏主意。编译器将使用标准整数转换(例如符号扩展)静默地加宽字rune字(对于字符串,您会得到类型不匹配的编译错误)。但该值可能不匹配。例如,字符0x80到0xff通常映射到不同的Unicode代码点,具体映射因编译器的代码页而异。显然,Unicode不可能使用身份转换映射所有不同的代码页。如果仅仅扩大就足够了,就不需要像mbtowcs这样的函数了。WRT关于'\xA